<?php

namespace Tools;
use Think\Controller;

class  AdminController extends Controller{
    //构造方法:实现各个方法访问过滤效果
    function __construct(){
        //避免覆盖父类构造方法，给其先执行；
        parent::__construct();

        //获得当前用户访问的"控制器/操作方法"信息
        $nowac = CONTROLLER_NAME."-".ACTION_NAME;
        //获得当前用户“允许”访问的权限信息
        //amdin   role   auth
        //获得登录系统管理员信息，进而获得角色id
        $ma_id = session('ma_id');
        $ma_name= session('ma_name');

        //为登录系统用户判断,未登录跳转登录页面
        //如果访问“登录页面，验证码,退出页面”则允许访问
//        $loginac = "User-login,User-logout,User-verifyImg";
        $loginac = "Manager-login,Manager-logout,Manager-verifyImg";

        //没有登录，并且当前控制器不是登录，登出，验证码页面则跳转到登录页面
        if(empty($ma_id)&& strpos($loginac,$nowac)===false){
            $moduleurl = __MODULE__;
            $js = <<< eof
                  <script type="text/javascript">
                  window.top.location.href="{$moduleurl}/Manager/login";
                  </script>
eof;
            echo $js;
//            $this->redirect('Manager/login',array(),1,"你还没登录!");
            exit();
        }

//        $manager_info = D('Manager')->find($admin_id);
//        $roleid = $manager_info['mg_role_id'];

        //根据$roleid 获得角色信息
//        $roleinfo = D('Role')->find($roleid);
//        $auth_ac = $roleinfo['role_auth_ac'];//获得对应角色的控制器，操作方法

        //默认允许大家都可以访问的

        //越权访问判断过滤
        //1.当前访问的权限必须出现在其“权限”列表里面
        //2.当前访问的权限 也 没有出现在 “默认允许的权限列表”里面
        //3.访问者不是超级管理员
        //那么当前权限就“没有权限访问”

        //当前访问的权限与允许访问权限  多 “对比”
        //strpos 判断一个小的字符串在一个大的字符串中第一次出现的位置
//        if(strpos($auth_ac,$nowac) === false && strpos($allow_ac,$nowac)===false && $admin_name !== "admin"){
//            echo $nowac."<br>";
//            echo $auth_ac."<br>".$allow_ac;
//            exit('没有权限访问');
//        }

//        echo "过滤每个方法";
    }
    //删除缓存
    function cache($path){
        echo $path;
        $rtim = $this->del_dir($path);
        if($rtim){
            //清除成功
            return true;
        }else{
            //清除失败
            echo false;
        }
    }
    function del_dir($dir) {
        $dh = opendir($dir);

        while ($file = readdir($dh)) {

            if($file!="." && $file!="..") {
                $fullpath = $dir."/".$file;
                if(!is_dir($fullpath)) {
                    unlink($fullpath);
                } else {
                    $this->del_dir($fullpath);
                }
            }
        }
        closedir($dh);
        if(rmdir($dir)) {
            return true;
        }else {
            return false;
        }
    }

}
